[PATCH] CMake: Fix EXPAT version warning
authorJulien Schueller <schueller@phimeca.com>
Mon, 19 Jan 2026 13:49:34 +0000 (14:49 +0100)
committerDrew Parsons <dparsons@debian.org>
Thu, 5 Feb 2026 19:55:34 +0000 (20:55 +0100)
Closes #19679

Gbp-Pq: Name findEXPAT_version_fix_MR12826.patch

CMake/FindEXPAT.cmake
ThirdParty/expat/CMakeLists.txt

index 00b160a49524ca48a5eed11755fcc2f67f58116d..5dda968d005a1715771e88c31bb5fa200cf28c23 100644 (file)
@@ -43,25 +43,26 @@ if (EXPAT_INCLUDE_DIR AND EXISTS "${EXPAT_INCLUDE_DIR}/expat.h")
     file(STRINGS "${EXPAT_INCLUDE_DIR}/expat.h" expat_version_str
          REGEX "^#[\t ]*define[\t ]+XML_(MAJOR|MINOR|MICRO)_VERSION[\t ]+[0-9]+$")
 
-    unset(EXPAT_VERSION_STRING)
+    unset(EXPAT_VERSION)
     foreach(VPART MAJOR MINOR MICRO)
         foreach(VLINE ${expat_version_str})
             if(VLINE MATCHES "^#[\t ]*define[\t ]+XML_${VPART}_VERSION[\t ]+([0-9]+)$")
                 set(EXPAT_VERSION_PART "${CMAKE_MATCH_1}")
-                if(EXPAT_VERSION_STRING)
-                    string(APPEND EXPAT_VERSION_STRING ".${EXPAT_VERSION_PART}")
+                if(EXPAT_VERSION)
+                    string(APPEND EXPAT_VERSION ".${EXPAT_VERSION_PART}")
                 else()
-                    set(EXPAT_VERSION_STRING "${EXPAT_VERSION_PART}")
+                    set(EXPAT_VERSION "${EXPAT_VERSION_PART}")
                 endif()
             endif()
         endforeach()
     endforeach()
+    set(EXPAT_VERSION_STRING ${EXPAT_VERSION})
 endif ()
 
 include(FindPackageHandleStandardArgs)
 FIND_PACKAGE_HANDLE_STANDARD_ARGS(EXPAT
                                   REQUIRED_VARS EXPAT_LIBRARY EXPAT_INCLUDE_DIR
-                                  VERSION_VAR EXPAT_VERSION_STRING)
+                                  VERSION_VAR EXPAT_VERSION)
 
 # Copy the results to the output variables and target.
 if(EXPAT_FOUND)
index 81d65a77accb976c0a5b82c7f6bcbb5000f16f51..cf2d168b3047c7b92572ccff8797b5259d92084d 100644 (file)
@@ -16,7 +16,8 @@ vtk_module_third_party(
     PACKAGE EXPAT
     VERSION 2.5.0
     TARGETS EXPAT::EXPAT
-    STANDARD_INCLUDE_DIRS)
+    STANDARD_INCLUDE_DIRS
+    USE_VARIABLES EXPAT_VERSION)
 
 include(vtkDetectLibraryType)
 vtk_detect_library_shared(vtkexpat EXPAT::EXPAT)
@@ -42,9 +43,9 @@ vtk_module_install_headers(
 if(NOT DEFINED ENV{DASHBOARD_TEST_FROM_CTEST})
   # Check for deprecated versions of expat
   set(expat_deprecated_version "2.6.3")
-  if(VTK_MODULE_USE_EXTERNAL_vtkexpat AND EXPAT_VERSION_STRING VERSION_LESS expat_deprecated_version)
+  if(VTK_MODULE_USE_EXTERNAL_vtkexpat AND EXPAT_VERSION VERSION_LESS expat_deprecated_version)
     message(DEPRECATION
-      "External expat ${EXPAT_VERSION_STRING} is less than ${expat_deprecated_version} "
+      "External expat ${EXPAT_VERSION} is less than ${expat_deprecated_version} "
       "and (may) have known vulnerabilities. Consider upgrading.")
   endif()
 endif()